Skip to content

fix: 恢复 master CI 全绿——ftxui gitlink 同步 + verify_package_contract 两处 #35 引入缺陷 - #38

Merged
LIUXIN557 merged 2 commits into
masterfrom
fix/verify-package-desktop-probe
Sep 2, 2026
Merged

fix: 恢复 master CI 全绿——ftxui gitlink 同步 + verify_package_contract 两处 #35 引入缺陷#38
LIUXIN557 merged 2 commits into
masterfrom
fix/verify-package-desktop-probe

Conversation

@LIUXIN557

@LIUXIN557 LIUXIN557 commented Sep 2, 2026

Copy link
Copy Markdown
Collaborator

背景

master 当前 CI 持续红,实际存在 三层 独立的 pre-existing 失败(均非本 PR 引入,但有证据链):

失败 step 根因 引入者
Build CLI and test binary master 经 #36 合入 0b97e49b(TUI 超链接增强 5.1–5.3)后 src/main.cpp 调用 ftxui::App::EnableMouseHoverMotion,但 external/ftxui gitlink 仍停 658c942c(该版本无此成员)→ 编译失败 #36(Merge run 33653685659 同一步失败)
Run ctest → seed bundle unexpected darwin flow cp -R src dst 复制到已存在目录变 seed/seed/... #35(run 33653587072)
Run ctest → desktop immediate exit probe_desktop() TOCTOU:首 poll 落在进程退出前窗口返回 None → exit 0 桩被误判 alive(pass),负向用例期望 1 得 0 #35

注:②③ 即 PR #35(feat/verify-package-skill)合入后 verify_package_contract 的失败;① 是 #36 合入后新暴露的构建红。三层叠满导致 master 无法合并任何 PR(如 #37)。

修复内容(3 commits / 6 文件)

  1. fix(submodule) bbe73202external/ftxui gitlink 658c942cf98588b4(FTXUI PR Fix submodule ref and workflow branch trigger for CI #2 hover motion,已确认合入 shaohaozhi286/FTXUI main,任意机器 clone 可及;与 chore(submodule): 前移 external/ftxui 至 f98588b4(FTXUI PR #2 hover motion) #37 分支 ae67486c 指向一致)。修复 ① 构建红。
  2. fix(verify-package) 3521b1d9(部分)tests/scripts/verify_package_test.sh darwin flow cp -R seedcp -R seed/. seed/(填充式复制)。修复 ②。
  3. fix(verify-package) 3521b1d9(部分):4× verify_package.py probe_desktop() 由"首 poll None 即判 alive"改为"轮询等满整个 launch_timeout 窗口,窗口内退出(含 exit 0)判 fail、活满才 pass"。修复 ③(消除 TOCTOU)。

本地验证(纯 master 基线 8823313

  • 修复前:verify_package_test.sh 5/5 失败(seed bundle unexpected 短路 + desktop 竞态)。
  • 应用 ②③ 后连跑:5/5 全部通过(含 desktop immediate exit 负向用例与 darwin bundle flow)。
  • ① 的修复(gitlink 前移)与 chore(submodule): 前移 external/ftxui 至 f98588b4(FTXUI PR #2 hover motion) #37 分支已验证的 ae67486c 完全一致;f98588b4 含 EnableMouseHoverMotion(app.hpp/app.cpp),658c942c 不含——构建失败的根因即此。

影响

注意

  • external/ftxui 目标 commit f98588b4 已确认是上游 shaohaozhi286/FTXUI main 的历史 commit(非孤儿),子模块任何机器 clone 可正常获取。

probe_desktop() 的 TOCTOU 竞态:Popen 后第一次 poll() 落在进程真正退出前
的窗口内返回 None,立即 exit 0 的桩被误判为 'alive after launch'(pass),
负向用例期望 exit 1 却得 0(desktop immediate exit: expected exit 1, got 0)。
改为轮询等满整个 launch_timeout 窗口:窗口内任一时刻退出(含 exit 0)判
fail,活满窗口才判 pass,消除竞态(该 flake 概率性出现,曾本地 5/5 复现)。

verify_package_test.sh darwin app bundle 用例的 seed 复制嵌套:mkdir -p 已
创建 seed 目标目录后 cp -R src dst 会把源复制成 dst/seed(seed/seed/...),
与 assets/seed 比对报 seed bundle unexpected。改为 cp -R src/. dst/ 填充。

两处均为 PR #35(feat/verify-package-skill)合入 master 后引入的失败,已
在 master 基线(8823313c)本地复现;本提交在纯 master 基础上修复并连跑
verify_package_test.sh 5/5 通过。
…HoverMotion)

master 经 #36 合入 0b97e49(TUI 超链接增强 5.1-5.3)后,src/main.cpp 调用了
ftxui::App::EnableMouseHoverMotion / EnableSynchronizedOutput 等新 API,但
external/ftxui 的 gitlink 仍停留在 658c942c——该版本 ftxui 无
EnableMouseHoverMotion 成员,导致 linux-x64 CI 在 Build CLI and test binary
步骤失败(error: class ftxui::App has no member named EnableMouseHoverMotion),
master 处于构建红态(Merge #36 run 33653685659 同一步失败,为 pre-existing)。

前移至 f98588b4(FTXUI PR #2 hover motion,已确认合入 shaohaozhi286/FTXUI
main,任意机器 clone 可及;与 #37 分支 ae67486 指向一致)。
@LIUXIN557 LIUXIN557 changed the title fix(verify-package): 修复 verify_package_contract 的 seed 嵌套与 desktop 探测竞态(#35 引入的 master 预存在失败) fix: 恢复 master CI 全绿——ftxui gitlink 同步 + verify_package_contract 两处 #35 引入缺陷 Sep 2, 2026
@LIUXIN557
LIUXIN557 merged commit 4708a8e into master Sep 2, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants